import pandas as pd


def cleaning():
    missing_values = ["n/a", "na", "--"]
    # 我们看到 Pandas 把 n/a 和 NA 当作空数据，na 不是空数据，不符合我们要求，我们可以指定空数据类型：
    df = pd.read_csv('property-data.csv',na_values=missing_values)
    print(df)
    print("---------------------------------------------------------------------------------------------")
    # print (df['NUM_BEDROOMS'])
    # print (df['NUM_BEDROOMS'].isnull())

    # 删除  包含 空数据的行
    # df = pd.read_csv('property-data.csv')
    # df.dropna(inplace=True)
    # print(df.to_string())

    # 移除 ST_NUM 列中字段值为空的行：
    # df.dropna(subset=['ST_NUM'],inplace=True)
    # print(df.to_string())
    print("---------------------------------------------------------------------------------------------")

    # 使用 12345 替换空字段：
    # df.fillna(12345,inplace=True)
    # print(df.to_string())

    # 使用 mean() 方法计算列的均值并替换空单元格：
    # 替换空单元格的常用方法是计算列的均值、中位数值或众数。
    # Pandas使用 mean()、 计算列的均值（所有值加起来的平均值）
    # median() 计算列的中位数值（排序后排在中间的数）
    # mode() 计算列的众数（出现频率最高的数）。
    x = df['ST_NUM'].mode()
    df['ST_NUM'].fillna(x,inplace=True)
    print(df.to_string())

if __name__ == '__main__':
    cleaning()